import { getPermission } from '../../../../utils/getPermission';
import { phoneRegCheck } from '../../../../utils/util';
import Toast from 'tdesign-miniprogram/toast/index';
import { addressParse } from '../../../../utils/addressParse';
import { resolveAddress, rejectAddress } from '../../address/list/util';

Component({
  externalClasses: ['t-class'],
  properties: {
    title: {
      type: String,
    },
    navigateUrl: {
      type: String,
    },
    navigateEvent: {
      type: String,
    },
    isCustomStyle: {
      type: Boolean,
      value: false,
    },
    isDisabledBtn: {
      type: Boolean,
      value: false,
    },
    isOrderSure: {
      type: Boolean,
      value: false,
    },
  },
  methods: {
    getWxLocation() {
      // if (this.properties.isDisabledBtn) return;
      // getPermission({ code: 'scope.address', name: '通讯地址' }).then(() => {
      //   wx.chooseAddress({
      //     success: async (options) => {
      //       const { provinceName, cityName, countyName, detailInfo, userName, telNumber } = options;

      //       if (!phoneRegCheck(telNumber)) {
      //         Toast({
      //           context: this,
      //           selector: '#t-toast',
      //           message: '请填写正确的手机号',
      //         });
      //         return;
      //       }

      //       const target = {
      //         name: userName,
      //         phone: telNumber,
      //         countryName: '中国',
      //         countryCode: 'chn',
      //         detailAddress: detailInfo,
      //         provinceName: provinceName,
      //         cityName: cityName,
      //         districtName: countyName,
      //         isDefault: false,
      //         isOrderSure: this.properties.isOrderSure,
      //       };

      //       try {
      //         const { provinceCode, cityCode, districtCode } = await addressParse(provinceName, cityName, countyName);

      //         const params = Object.assign(target, {
      //           provinceCode,
      //           cityCode,
      //           districtCode,
      //         });
      //         if (this.properties.isOrderSure) {
      //           this.onHandleSubmit(params);
      //         } else if (this.properties.navigateUrl != '') {
      //           const { navigateEvent } = this.properties;
      //           this.triggerEvent('navigate');
      //           wx.navigateTo({
      //             url: this.properties.navigateUrl,
      //             success: function (res) {
      //               res.eventChannel.emit(navigateEvent, params);
      //             },
      //           });
      //         } else {
      //           this.triggerEvent('change', params);
      //         }
      //       } catch (error) {
      //         wx.showToast({ title: '地址解析出错，请稍后再试', icon: 'none' });
      //       }
      //     },
      //     fail(err) {
      //       console.warn('未选择微信收货地址', err);
      //     },
      //   });
      // });
    },

    async queryAddress(addressId) {
      try {
        const { data } = await apis.userInfo.queryAddress({ addressId });
        return data.userAddressVO;
      } catch (err) {
        console.error('查询地址错误', err);
        throw err;
      }
    },

    findPage(pageRouteUrl) {
      const currentRoutes = getCurrentPages().map((v) => v.route);
      return currentRoutes.indexOf(pageRouteUrl);
    },

    async onHandleSubmit(params) {
      try {
        const orderPageDeltaNum = this.findPage('pages/order/order-confirm/index');
        if (orderPageDeltaNum > -1) {
          wx.navigateBack({ delta: 1 });
          resolveAddress(params);
          return;
        }
      } catch (err) {
        rejectAddress(params);
        console.error(err);
      }
    },
  },
});
